import logging

from odoo import models, fields, api, _
from odoo.exceptions import UserError, ValidationError

_logger = logging.getLogger(__name__)


class ManualUpdateInfoMix(models.AbstractModel):
    '''对手动合并信息的抽象
    * 任务记录会包含这些信息
    * 向导对话框中也会使用这些信息
    '''
    _name = 'manual.update.info.mix'

    # 使用数组方式，从0开始，包头不包尾
    start = fields.Integer(string='起始位置', required=True)
    end = fields.Integer(string='结束位置', required=True)
    manual_update_type = fields.Selection(
        string='手动更新类型',
        selection=[('range', '选取片段'), ('delete', '清除')],
        default='range'
    )
    append_sequence = fields.Integer(string='添加顺序', required=True)
    reverse = fields.Boolean(string='是否翻转', default=True)
    note = fields.Char(string='备注')


class ManualUpdateInfo(models.Model):
    """如何处理任务抓取的作者首页视频列表，这些信息描述最终的视频列表如何构建
    * 区间的起始
    * 区间是否翻转顺序
    * 区间的在视频列表中的插入顺序
    """
    _name = 'manual.update.info'
    _inherit = ['manual.update.info.mix']
    _description = '合并信息'
    _order = 'append_sequence'

    celery_task_id = fields.Many2one(comodel_name='celery.task', string='Celery Task')
